/** \file
* Preprocessor configuration.
* This file is part of Chorus, available at
* http://code.google.com/p/chorus-twitter/ . This file and all associated files
* and derivative works are bound by the terms of the LGPL 3.0 license,
* available at http://www.gnu.org/licenses/lgpl-3.0-standalone.html .
* \par Subversion URL:
* \$URL$
* \version \$Rev$
* \date    \$Date$
* \author  \$Author$
*/

/// Check for posix compatibility (unix or mac boxes)
#if defined(__unix__) || defined(__APPLE__)
#	define POSIX
#endif

/// Configure the posix headers
#ifdef POSIX
/// Make libraries re-entrant for thread safety
#	ifndef _REENTRANT
#		define _REENTRANT
#	endif
#endif

/// Check for WIN32 source files
#if defined(NEEDS_WIN32) && !defined(WIN32)
#	error This file needs to be compiled with WIN32 support.
#endif

/// Check for posix source files
#if defined(NEEDS_POSIX) && !defined(POSIX)
#	error This file needs to be compiled with posix support.
#endif

/// Configure static library forced exporting
#ifdef _MSC_VER
#	define FORCE_EXPORT __declspec(dllexport)
#else
#	define FORCE_EXPORT
#endif

/// Configure the Windows headers
#ifdef WIN32
/// Trim down unnecessary header content
#	ifndef WIN32_LEAN_AND_MEAN
#		define WIN32_LEAN_AND_MEAN
#	endif
#	ifndef VC_EXTRALEAN
#		define VC_EXTRALEAN
#	endif

/// Force "strict" typechecking mode
#	ifndef STRICT
#		define STRICT
#	endif

/// Use at least Windows XP DDI
#	ifdef NTDDI_VERSION
#		undef NTDDI_VERSION
#	endif
#	define NTDDI_VERSION NTDDI_WINXP

/// Use at least Windows XP
#	ifdef _WIN32_WINNT
#		undef _WIN32_WINNT
#	endif
#	define _WIN32_WINNT 0x0501

/// Use at least Windows XP
#	ifdef WINVER
#		undef WINVER
#	endif
#	define WINVER 0x0501

#endif // #ifdef WIN32

/// Configure debug console support
#ifdef _DEBUG
#	define USING_DEBUGCONSOLE
#endif

/// Configure timer global support
#if defined(USING_DEBUGCONSOLE) || defined(POSIX)
#	define USING_TIMERGLOB
#endif
